<?php
namespace app\index\controller;

use app\index\model\EnginBaoModel;
use app\index\model\EnginModel;
use app\index\model\EnginMuModel;
use think\Controller;
use think\Exception;
use think\facade\Config;

class Test22 extends Controller
{
    public function test(){
        die;
        set_time_limit(0);

        $enginArr = [
            '二标 2024年扎赉特旗巴彦高勒镇常胜村1.8292万亩高标准农田建设增发国债项目',
            '三标 2024年扎赉特旗音德尔镇白音花嘎查3.6万亩高标准农田建设增发国债项目',
            '四标 2024年扎赉特旗音德尔镇玛尔吐嘎查1.38万亩高标准农田建设增发国债项目',
            '四标 2024年扎赉特旗音德尔镇玛尔吐嘎查1.52万亩高标准农田建设增发国债项目',
            '六标 2024年扎赉特旗音德尔镇查干嘎查1.6万亩高标准农田建设增发国债项目',
            '六标 2024年扎赉特旗音德尔镇查干嘎查1.9万亩高标准农田建设增发国债项目',
            '七标 2024年扎赉特旗音德尔镇阿拉坦花、其格吐嘎查1.98 万亩高标准农田建设增发国债项目',
            '七标 2024年扎赉特旗音德尔镇新立、巴彦扎拉嘎嘎查0.92万亩高标准农田建设增发国债项目',
            '八标 2024年扎赉特旗音德尔镇兴华嘎查2.115万亩高标准农田建设增发国债项目',
            '八标 2024年扎赉特旗音德尔镇红旗嘎查和林场村1.114万亩高标准农田建设增发国债项目',
            '八标 2024年扎赉特旗音德尔镇旭升0.671万亩高标准农田建设增发国债项目',
            '九标 2024年扎赉特旗巴达尔胡镇2.4万亩高标准农田EPC工程国债项目',
            '一标（EPC2） 2024年扎赉特旗巴彦高勒镇二龙山村2.41万亩高标准农田建设增发国债项目',
            '二标 2024年扎赉特旗巴彦高勒镇古城村1.61万亩高标准农田建设增发国债项目',
            '三标 2024年扎赉特旗巴彦高勒镇前进村2.9万亩高标准农田建设增发国债项目',
            '四标 2024年扎赉特旗巴彦高勒镇四方城村5.23万亩高标准农田建设增发国债项目',
            '五标 2024年扎赉特旗巴彦高勒镇巨力河村1.1万亩高标准农田建设增发国债项目',
            '六标 2024年扎赉特旗巴彦高勒镇巴彦高勒村2.3万亩高标准农田建设增发国债项目',
            '七标 2024年扎赉特旗巴彦高勒镇永胜村4.06万亩高标准农田建设增发国债项目',
            '八标 2024年扎赉特旗巴彦高勒镇团发村4.48万亩高标准农田建设增发国债项目',
            '九标 2024年扎赉特旗巴彦高勒镇阿贵吐1.79万亩高标准农田建设增发国债项目',
            '改造提升1.76万亩 兴安盟扎赉特旗高标准农田巴彦高勒镇古城村1.472万亩高标准农田改造提升增发国债项目',
            '改造提升1.76万亩 兴安盟扎赉特旗高标准农田胡尔勒镇浩斯台嘎查0.288万亩高标准农田改造提升增发国债项目',
            '水标一标 2024年扎赉特旗巴彦高勒镇长山村0.8875万亩高标准农田建设增发国债项目',
            '水标一标 2024年扎赉特旗巴彦高勒镇长山村0.9159万亩高标准农田建设增发国债项目',
            '水标三标 2024年扎赉特旗巴彦高勒镇胜利村1.5497万亩高标准农田建设增发国债项目',
            '水标三标 2024年扎赉特旗巴彦高勒镇长山村0.5560万亩高标准农田建设增发国债项目',
            '水标四标 2024年扎赉特旗巴彦高勒镇水泉村1.0485万亩高标准农田建设增发国债项目',
            '水标四标 2024年扎赉特旗巴彦高勒镇水泉村1.0520万亩高标准农田建设增发国债项目',
            '水标五标 2024年扎赉特旗巴彦高勒镇模范村1.3237万亩高标准农田建设增发国债项目',
            '水标五标 2024年扎赉特旗巴彦高勒镇模范村0.7491万亩高标准农田建设增发国债项目',
            '水标七标 2024年扎赉特旗巴彦高勒镇建设村0.7400万亩高标准农田建设增发国债项目',
            '水标八标 2024年扎赉特旗巴彦高勒镇二龙涛村0.4910万亩高标准农田建设增发国债项目',
            '水标八标 2024年扎赉特旗巴彦高勒镇二龙涛村0.9490万亩高标准农田建设增发国债项目',
            '水标九标 2024年扎赉特旗巴彦高勒镇石头井子村1.15万亩高标准农田建设增发国债项目',
            '水标十标 2024年扎赉特旗巴彦高勒镇胜利村0.5615万亩高标准农田建设增发国债项目',
            '水标十一标 2024年扎赉特旗巴彦高勒镇兴隆村0.7461万亩高标准农田建设增发国债项目',
            '水标十三 2024年扎赉特旗巴彦高勒镇向阳村1.10 万亩高标准农田建设增发国债项目',
            '水标十四 2024年扎赉特旗巴彦高勒镇建设村0.8520万亩高标准农田建设增发国债项目',
            '水标十五 2024年扎赉特旗巴彦高勒镇兴盛村1.4965万亩高标准农田建设增发国债项目',
            '水标十七 2024年扎赉特旗巴彦高勒镇凤凰山村1.0500万亩高标准农田建设增发国债项目',
            '水标十八 2024年扎赉特旗巴彦高勒镇凤凰山村1.3826万亩高标准农田建设增发国债项目',
            '水标十九 2024年扎赉特旗巴彦高勒镇凤凰山村1.48万亩高标准农田建设增发国债项目',
            '水标二十一 2024年扎赉特旗巴彦高勒镇永发村0.2850万亩高标准农田建设增发国债项目',
            '水标二十一 2024年扎赉特旗巴彦高勒镇和平村1.3287万亩高标准农田建设增发国债项目',
            '水标二十二 2024年扎赉特旗巴彦高勒镇和平村1.6921万亩高标准农田建设增发国债项目',
            '水标二十四 2024年扎赉特旗巴彦高勒镇建设村0.75万亩高标准农田建设增发国债项目',
            '水标二十五 2024年扎赉特旗巴彦高勒镇常胜村 1.3470万亩高标准农田建设增发国债项目',
            '电标二标 兴安盟扎赉特旗高标准农田建设增发国债项目二标段（电标）',
            '电标六标 兴安盟扎赉特旗高标准农田建设增发国债项目六标段（电标）',
            '电标十二 兴安盟扎赉特旗高标准农田建设增发国债项目十二标段（电标）',
            '电标十六 兴安盟扎赉特旗高标准农田建设增发国债项目十六标段（电标）',
            '电标二十 兴安盟扎赉特旗高标准农田建设增发国债项目二十标段（电标）',
            '电标二十三 兴安盟扎赉特旗高标准农田建设增发国债项目二十三标段（电标）',
            '电标二十六 兴安盟扎赉特旗高标准农田建设增发国债项目二十六标段（电标）',
        ];

        foreach ($enginArr as $vvv){
            $enins = [];
            $enins['comid'] = 1;
            $enins['name'] = $vvv;
            $enginid = EnginModel::insertGetId($enins);

            $muid = EnginMuModel::insertGetId([
                'comid' => 1,
                'enginid' => $enginid,
                'pid' => 0,
                'level' => 1,
                'name' => $enins['name'],
            ]);
            EnginMuModel::where(['id'=>$muid])->update(['parents'=>$muid]);


            $this->paset_chu_mu(75787, $muid);

        }

        dump('success');die;
    }



    public function paset_chu_mu($copyid, $pasteid){
        $copyInfo = EnginMuModel::where(['id'=>$copyid])->find();
        $pasteInfo = EnginMuModel::where(['id'=>$pasteid])->find();

        //复制文件夹
        $pasteArr = [
            'comid' => $pasteInfo['comid'],
            'enginid' => $pasteInfo['enginid'],
            'pid' => $pasteInfo['id'],
            'parents' => $pasteInfo['parents'],
            'level' => $pasteInfo['level']+1,
            'name' => $this->check_engin_mu_name($copyInfo['name'], $pasteInfo['id'], $pasteInfo['enginid']),
            'created_user' => -1,
            'created_at' => date('Y-m-d H:i:s'),
            'updated_at' => date('Y-m-d H:i:s'),
        ];

        if($copyid != 75787){
            $pasteNewId = EnginMuModel::insertGetId($pasteArr);
            $pasteNewParents = $pasteArr['parents'].','.$pasteNewId;
            EnginMuModel::where(['id'=>$pasteNewId])->update(['parents'=>$pasteNewParents]);
        }else{
            $pasteNewId = $pasteid;
        }


        //复制文件
        $fileArr = EnginBaoModel::where(['comid'=>$pasteInfo['comid'],'deleted_user'=>0,'status'=>1,'muid'=>$copyid])->select()->toArray();
        foreach ($fileArr as $fileItem){
            if($fileItem['id'] == 21891){
                continue;
            }
            $baoarr = [];
            $baoarr['comid'] = $fileItem['comid'];
            $baoarr['status'] = $fileItem['status'];
            $baoarr['enginid'] = $pasteInfo['enginid'];
            $baoarr['isadd'] = 1;
            $baoarr['muid'] = $pasteNewId;
            $baoarr['name'] = $fileItem['name'];
            $baoarr['ext'] = $fileItem['ext'];
            $baoarr['size'] = $fileItem['size'];
            $baoarr['oripath'] = $fileItem['oripath'];
            $baoarr['created_user'] = 5;
            $bao_id = EnginBaoModel::insertGetId($baoarr);

            $encpath =  encrypt($bao_id, 'E', Config::get('service.info_key'));
            EnginBaoModel::where(['id'=>$bao_id])->update(['encpath'=>$encpath]);
        }


        //处理子级
        $childrenArr = EnginMuModel::where(['pid'=>$copyid,'deleted_user'=>0])->select()->toArray();
        foreach ($childrenArr as $chilitem){
            $this->paset_chu_mu($chilitem['id'], $pasteNewId);
        }
    }


    public function check_engin_mu_name($name, $pid=0, $enginid, $id=0){
        $exist = true;
        $num = 1;
        while ($exist) {
            $info = EnginMuModel::where(['comid'=>1,'enginid'=>$enginid,'pid'=>$pid,'name'=>$name,'deleted_user'=>0])
                ->where('id','neq', $id)->find();
            if($info){
                $name = $name.'['.$num.']';
                $exist = true;
            }else{
                $exist = false;
            }
        }
        return $name;
    }
}
